package com.Maykk.Demo11;

import java.util.function.Supplier;

/**
 * @ClassName: SupplierDemo
 * @Description: TODO 生产者接口 Supplier
 * @Author: MaykkStar@163.com
 */
public class SupplierDemo {
    public static void main(String[] args) {
        // 使用 Supplier 输出一段字符串

        // 匿名内部类
        // String str = getString(new Supplier<String>(){
        //     @Override
        //     public String get() {
        //         return "匿名内部类实现";
        //     }
        // });

        String str = getString(() -> "Lambda");
        System.out.println(str);


        // 使用 Supplier 输出数组中最大的数
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        // 匿名内部类
        // int max = maxValue(new Supplier<Integer>() {
        //     @Override
        //     public Integer get() {
        //         int max = arr[0];
        //         for (int i = 1; i < arr.length; i++) {
        //             max = Math.max(max, arr[i]);
        //         }
        //         return max;
        //     }
        // });

        // Lambda
        int max = maxValue(() -> {
            int m = arr[0];
            for (int i = 1; i < arr.length; i++) {
                m = Math.max(m, arr[i]);
            }
            return m;
        });
        System.out.println(max);
    }

    private static int maxValue(Supplier<Integer> sp) {
        return sp.get();
    }

    public static String getString(Supplier<String> sp) {
        return sp.get();
    }
}
